home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Headers / appkit / Application.h < prev    next >
Text File  |  1993-01-04  |  10KB  |  312 lines

  1. /*
  2.     Application.h
  3.     Application Kit, Release 2.0
  4.     Copyright (c) 1988, 1989, 1990, NeXT, Inc.  All rights reserved. 
  5. */
  6.  
  7. #import "Responder.h"
  8. #import "Pasteboard.h"
  9. #import "screens.h"
  10. #import "NXDataLinkManager.h"
  11. #import "workspaceRequest.h"
  12. #import <objc/hashtable.h>
  13. #import <remote/NXConnection.h>
  14. @class NXDataLinkManager;
  15.  
  16. /* KITDEFINED subtypes */
  17.  
  18. #define NX_WINEXPOSED         0
  19. #define NX_APPACT         1
  20. #define NX_APPDEACT         2
  21. #define NX_WINMOVED         4
  22. #define NX_SCREENCHANGED    8
  23.  
  24. /* SYSDEFINED subtypes */
  25.  
  26. #define NX_POWEROFF        1
  27.  
  28. /* Additional flags */
  29.  
  30. #define NX_JOURNALFLAG    31
  31. #define NX_JOURNALFLAGMASK    (1 << NX_JOURNALFLAG)
  32.  
  33. /* Thresholds passed to DPSGetEvent and DPSPeekEvent */
  34.  
  35. #define NX_BASETHRESHOLD    1
  36. #define NX_RUNMODALTHRESHOLD    5
  37. #define NX_MODALRESPTHRESHOLD    10
  38.  
  39. /*
  40.  * Pre-defined return values for runModalFor: and runModalSession:
  41.  * The system slso reserves all values BELOW these.
  42.  */
  43.  
  44. #define NX_RUNSTOPPED        (-1000)
  45. #define NX_RUNABORTED        (-1001)
  46. #define NX_RUNCONTINUES        (-1002)
  47.  
  48. extern id NXApp;
  49. extern int NXProcessID;
  50. extern int NXNullObject;
  51. extern const char *const NXSystemDomainName;
  52.  
  53. extern id NXGetNamedObject(const char *name, id owner);
  54. extern const char *NXGetObjectName(id theObject);
  55. extern int NXNameObject(const char *name, id theObject, id owner);
  56. extern int NXUnnameObject(const char *name, id owner);
  57.  
  58. extern BOOL NXUserAborted(void);
  59. extern void NXResetUserAbort(void);
  60.  
  61. extern const char *NXHomeDirectory(void);
  62. extern const char *NXUserName(void);
  63.  
  64. extern int NXGetWindowServerMemory(DPSContext context, int *virtualMemory, int *windowBackingMemory, NXStream *windowDumpStream);
  65.  
  66. extern NXEvent *NXGetOrPeekEvent(DPSContext context, NXEvent * eventPtr, int mask, double timeout, int threshold, int peek);
  67.  
  68. /*
  69.  * Information used by the system between beginModalSession:for:
  70.  * and endModalSession: messages. This can either be allocated on
  71.  * the stack frame of the caller, or by beginModalSession:for:.
  72.  * The application should not access any of the elements of this
  73.  * structure.
  74.  */
  75.  
  76. typedef struct _NXModalSession {
  77.     id                      app;
  78.     id                      window;
  79.     struct _NXModalSession *prevSession;
  80.     int                     oldRunningCount;
  81.     BOOL                    oldDoesHide;
  82.     BOOL                    freeMe;
  83.     int                     winNum;
  84.     NXHandler              *errorData;
  85.     DPSContext              ctxt;
  86.     int                     reserved2;
  87. }                   NXModalSession;
  88.  
  89. @interface Application : Responder
  90. {
  91.     char               *appName;
  92.     NXEvent             currentEvent;
  93.     id                  windowList;
  94.     id                  keyWindow;
  95.     id                  mainWindow;
  96.     id                  delegate;
  97.     int                *hiddenList;
  98.     int                 hiddenCount;
  99.     const char         *hostName;
  100.     DPSContext          context;
  101.     int                 contextNum;
  102.     id                  appListener;
  103.     id                  appSpeaker;
  104.     port_t              replyPort;
  105.     NXSize              screenSize;
  106.     short               running;
  107.     struct __appFlags {
  108.     unsigned int        hidden:1;
  109.     unsigned int        autoupdate:1;
  110.     unsigned int        active:1;
  111.     unsigned int        _hasBeenRun:1;
  112.     unsigned int        _RESERVED:7;
  113.     unsigned int        _doingUnhide:1;
  114.     unsigned int        _delegateReturnsValidRequestor:1;
  115.     unsigned int        _deactPending:1;
  116.     unsigned int        _invalidState:1;
  117.     unsigned int        _invalidEvent:1;
  118.     }                   appFlags;
  119.     id                  _reservedApp4;
  120.     id                  _focusStack;
  121.     id                  _freelist;
  122.     id                  _pboard;
  123.     id                  _mainMenu;
  124.     id                  _appIcon;
  125.     id                  _nameTable;
  126.     id                  _printInfo;
  127.     unsigned int        _reservedApp1;
  128.     unsigned int        _reservedApp2;
  129.     unsigned int        _reservedApp3;
  130. }
  131.  
  132. + (id <NXWorkspaceRequestProtocol>)workspace;
  133.  
  134. + initialize;
  135. + new;
  136. + allocFromZone:(NXZone *)zone;
  137. + alloc;
  138.  
  139. - free;
  140. - setDelegate:anObject;
  141. - delegate;
  142. - (DPSContext)context;
  143. - hide:sender;
  144. - unhide:sender;
  145. - unhideWithoutActivation:sender;
  146. - findWindow:(int)windowNum;
  147. - focusView;
  148. - mainWindow;
  149. - keyWindow;
  150. - (port_t)replyPort;
  151. - (const char *)appName;
  152. - (const char *const *)systemLanguages;
  153. - (const char *)appListenerPortName;
  154. - appListener;
  155. - setAppListener:aListener;
  156. - appSpeaker;
  157. - setAppSpeaker:aSpeaker;
  158. - (int)unhide;
  159. - (int)openFile:(const char *)fullPath ok:(int *)flag;
  160. - (int)openTempFile:(const char *)fullPath ok:(int *)flag;
  161. - (int)powerOffIn:(int)ms andSave:(int)aFlag;
  162. - (int)unmounting:(const char *)fullPath ok:(int *)flag;
  163. - (int)unmounted:(const char *)fullPath;
  164. - (int)mounted:(const char *)fullPath;
  165. - (int)fileOperationCompleted:(int)operation;
  166. - (int)applicationWillLaunch:(const char *)applicationName;
  167. - (int)applicationDidLaunch:(const char *)applicationName;
  168. - (int)applicationDidTerminate:(const char *)applicationName;
  169. - (BOOL)isActive;
  170. - (const char *)hostName;
  171. - (BOOL)isHidden;
  172. - (BOOL)isRunning;
  173. - (int)activeApp;
  174. - deactivateSelf;
  175. - (int)activateSelf:(BOOL)flag;
  176. - (int)activate:(int)contextNumber;
  177. - run;
  178. - (int)runModalFor:theWindow;
  179. - stop:sender;
  180. - stopModal;
  181. - stopModal:(int)returnCode;
  182. - (void)abortModal;
  183. - (NXModalSession *)beginModalSession:(NXModalSession *)session for:theWindow;
  184. - (int)runModalSession:(NXModalSession *)session;
  185. - endModalSession:(NXModalSession *)session;
  186. - setAutoupdate:(BOOL)flag;
  187. - terminate:sender;
  188. - (NXEvent *)getNextEvent:(int)mask waitFor:(double)timeout threshold:(int)level;
  189. - (NXEvent *)peekNextEvent:(int)mask into:(NXEvent *)eventPtr waitFor:(float)timeout threshold:(int)level;
  190. - (NXEvent *)getNextEvent:(int)mask;
  191. - (NXEvent *)peekAndGetNextEvent:(int)mask;
  192. - (NXEvent *)peekNextEvent:(int)mask into:(NXEvent *)eventPtr;
  193. - (NXEvent *)currentEvent;
  194. - powerOff:(NXEvent *)theEvent;
  195. - applicationDefined:(NXEvent *)theEvent;
  196. - rightMouseDown:(NXEvent *)theEvent;
  197. - sendEvent:(NXEvent *)theEvent;
  198. - preventWindowOrdering;
  199. - becomeActiveApp;
  200. - resignActiveApp;
  201. - makeWindowsPerform:(SEL)aSelector inOrder:(BOOL)flag;
  202. - appIcon;
  203. - windowList;
  204. - getWindowNumbers:(int **)list count:(int *)winCount;
  205. - updateWindows;
  206. - (BOOL)sendAction:(SEL)theAction to:theTarget from:sender;
  207. - calcTargetForAction:(SEL)theAction;
  208. - (BOOL)tryToPerform:(SEL)anAction with:anObject;
  209. - printInfo;
  210. - runPageLayout:sender;
  211. - orderFrontColorPanel:sender;
  212. - setPrintInfo:info;
  213. - setMainMenu:aMenu;
  214. - mainMenu;
  215. - delayedFree:theObject;
  216. - getScreens:(const NXScreen **)list count:(int *)count;
  217. - (const NXScreen *)mainScreen;
  218. - (const NXScreen *)colorScreen;
  219. - getScreenSize:(NXSize *)theSize;
  220. - loadNibFile:(const char *)fileName owner:anOwner withNames:(BOOL)aFlag fromZone:(NXZone *)zone;
  221. - loadNibFile:(const char *)fileName owner:anOwner withNames:(BOOL)aFlag;
  222. - loadNibFile:(const char *)fileName owner:anOwner;
  223. - loadNibSection:(const char *)sectionName owner:anOwner withNames:(BOOL)aFlag;
  224. - loadNibSection:(const char *)sectionName owner:anOwner withNames:(BOOL)aFlag fromZone:(NXZone *)zone;
  225. - loadNibSection:(const char *)sectionName owner:anOwner withNames:(BOOL)flag fromHeader:(const struct mach_header *)mhp;
  226. - loadNibSection:(const char *)sectionName owner:anOwner withNames:(BOOL)flag fromHeader:(const struct mach_header *)mhp fromZone:(NXZone *)zone;
  227. - loadNibSection:(const char *)sectionName owner:anOwner;
  228. - validRequestorForSendType:(NXAtom)sendType andReturnType:(NXAtom)returnType;
  229. - slaveJournaler;
  230. - masterJournaler;
  231. - (BOOL)isJournalable;
  232. - setJournalable:(BOOL)newStatus;
  233. - showHelpPanel:sender;
  234.  
  235. @end
  236.  
  237. @interface Application(WindowsMenu)
  238. - windowsMenu;
  239. - setWindowsMenu:(id)menu;
  240. - arrangeInFront:sender;
  241. - removeWindowsItem:(id)win;
  242. - addWindowsItem:(id)win title:(const char *)aString filename:(BOOL)isFilename;
  243. - changeWindowsItem:(id)win title:(const char *)aString filename:(BOOL)isFilename;
  244. - updateWindowsItem:(id)win;
  245. - miniaturizeAll:sender;
  246. @end
  247.  
  248.  
  249. @interface Object(ApplicationDelegate)
  250. - appWillInit:sender;
  251. - appDidInit:sender;
  252. - appDidHide:sender;
  253. - appDidUnhide:sender;
  254. - appDidBecomeActive:sender;
  255. - appDidResignActive:sender;
  256. - appDidUpdate:sender;
  257. - appWillUpdate:sender;
  258. - appWillTerminate:sender;
  259. - app:sender willShowHelpPanel:panel;
  260. - (BOOL)appAcceptsAnotherFile:sender;
  261. - (int)app:sender openFile:(const char *)filename type:(const char *)aType;
  262. - (int)app:sender openTempFile:(const char *)filename type:(const char *)aType;
  263. - (NXDataLinkManager *)app:sender openFileWithoutUI:(const char *)filename type:(const char *)aType;
  264. - app:sender powerOffIn:(int)ms andSave:(int)aFlag;
  265. - (int)app:sender unmounting:(const char *)fullPath;
  266. - app:sender unmounted:(const char *)fullPath;
  267. - app:sender mounted:(const char *)fullPath;
  268. - app:sender fileOperationCompleted:(int)operation;
  269. - app:sender applicationWillLaunch:(const char *)appName;
  270. - app:sender applicationDidLaunch:(const char *)appName;
  271. - app:sender applicationDidTerminate:(const char *)appName;
  272. - applicationDefined:(NXEvent *)theEvent;
  273. - powerOff:(NXEvent *)theEvent;
  274. @end
  275.  
  276. @interface Application(ServicesMenu)
  277. - servicesMenu;
  278. - setServicesMenu:aMenu;
  279. - registerServicesMenuSendTypes:(const char *const *)sendTypes andReturnTypes:(const char *const *)returnTypes;
  280. @end
  281.  
  282. @interface Application(NXAlphaImport) 
  283. - setImportAlpha:(BOOL)flag;
  284. - (BOOL)doesImportAlpha;
  285. @end
  286.  
  287. @interface Object(NXServicesRequests)
  288. - (BOOL)writeSelectionToPasteboard:pboard types:(NXAtom *)types;
  289. - readSelectionFromPasteboard:pboard;
  290. @end
  291.  
  292. @interface Object(DelayedPerform)
  293. - perform:(SEL)aSelector with:anArg afterDelay:(int)ms cancelPrevious:(BOOL)flag;
  294. @end
  295.  
  296. @interface Object(NXNibNotification)
  297. - awakeFromNib;
  298. @end
  299.  
  300. @interface NXConnection(NXConnectionHelper) 
  301. - runFromAppKit;
  302. - runFromAppKitWithPriority:(int)priority;
  303. @end
  304.  
  305.  
  306. #ifdef KANJI
  307. @interface Application(InputManager)
  308. - inputManager;
  309. - setInputManager: newIM;
  310. @end
  311. #endif
  312.